package genetic;

import lombok.Data;

import java.util.*;

/**
 * 遗传结构体
 */
@Data
public class GeneticModel {
	// 遗传代数
	private final int populationNumber = 100;
	// 基因突变几率、遗传几率为1-突变几率
	private final double mutationProbability = 0.05;
	// 优秀个体选择群体数量
	private final int selectGeneNum = 50;
	// 突变个体选择群体数量
	private final int mutationGeneNum = 10;
	// 工单数量
	private int workOrderNumber;
	// 工位数量
	private int stationNumber;
	// 每个工单的工序数量
	private int processNumber;
	// 遗传染色体长度
	private int chromosomeSize;
	// 工位工序集合
	private Map<String,List<Long>> processSortMap = new HashMap<>();
	// 工位使用集合
	private Map<String,Map<Long,String>> stationMatrixMap = new HashMap<>();
	// 耗时集合
	private Map<String,Map<Long,Long>> timeMatrixMap = new HashMap<>();
	// 染色体种群
	private Set<Gene> geneSet = new HashSet<>();
	// 随机数
	private Random random = new Random();
}
